package bishi.wangyi;

import java.util.Map;
import java.util.Scanner;

public class demo4 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int m = in.nextInt();
        int n = in.nextInt();
        int k = in.nextInt();
        int[][] grid = new int[m][n];
        for(int i = 0;i < m;i++) {
            for(int j = 0;j < n;j++) {
                grid[i][j] = in.nextInt();
            }
        }

        int[][][] dp = new int[m][n][k + 1];
        for(int i =0;i < m;i++) {
            for(int j =0;j < n;j++) {
                for(int t = 0;t <=k;t++) {
                    dp[i][j][t] = Integer.MAX_VALUE/2;
                }
            }
        }

        dp[0][0][0] = 0;
        for(int t = 0;t <= k;t++) {
            for(int i = 0;i < m;i++) {
                for(int j =0;j < n;j++) {
                    if(dp[i][j][t] == Integer.MAX_VALUE / 2) {
                        continue;
                    }
                    if(i + 1 < m) {
                        dp[i + 1][j][t] = Math.max(dp[i + 1][j][t],dp[i][j][t] + grid[i + 1][j]);
                    }
                    if(j + 1 < n) {
                        dp[i][j + 1][t] = Math.max(dp[i][j + 1][t],dp[i][j][t] + grid[i][j + 1]);
                    }

                    if(t < k) {
                        for(int x = 0;x < m;x++) {
                            for(int y = 0;y < n;y++) {
                                if(grid[x][y] <= grid[i][j]) {
                                    dp[x][y][t + 1] = Math.min(dp[x][y][t + 1],dp[i][j][t]);
                                }
                            }
                        }
                    }

                }
            }
        }

        int min = Integer.MAX_VALUE;
        for(int t = 0;t <= k;t++) {
            min = Math.min(min,dp[m - 1][n - 1][t]);
        }
        if(min == Integer.MAX_VALUE / 2) {
            System.out.println(-1);
        }else  {
            System.out.println(min);
        }
    }
}
